import wx

class MyFrame(wx.Frame):
    def __init__(self):
        # 窗体
        super().__init__(None, title = '我的窗体', size = (600, 800))
        # 面板
        panel = wx.Panel(self)
        btn = wx.Button(panel, label = '点击弹出')
        # 弹出层，是直接在窗体上的
        # 默认不显示，点击按钮之后通过代码让弹出层显示
        self.dialog = wx.Dialog(self, title = '弹出层')
        # 基于弹出层创建面板
        dialog_panel =  wx.Panel(self.dialog)
        text = wx.StaticText(dialog_panel, label= 'Hello World')
        btn.Bind(wx.EVT_BUTTON, self.show_dialog)
        # 显示窗体
        self.Show()

    def show_dialog(self, event):
        print('显示弹出层')
        # 显示弹出层后不能再操作主窗体
        self.dialog.ShowModal()
        # 显示弹出层时，同时可以操作主窗体
        # self.dialog.Show()

app = wx.App()
window = MyFrame()
app.MainLoop()